package com.example.annotation;

import java.lang.annotation.*;

/**
 * 异步消息处理注解
 * 用于标记需要异步处理的方法
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface AsyncMessageHandler {
    /**
     * 队列名称
     */
    String queue();
    
    /**
     * 交换机名称
     */
    String exchange() default "";
    
    /**
     * 路由键
     */
    String routingKey() default "";
    
    /**
     * 重试次数
     */
    int retryTimes() default 3;
    
    /**
     * 重试间隔（毫秒）
     */
    int retryInterval() default 5000;
    
    /**
     * 是否记录处理日志
     */
    boolean enableLog() default true;
    
    /**
     * 消息优先级
     */
    int priority() default 0;
    
    /**
     * 消息过期时间（毫秒）
     */
    long ttl() default 0;
} 